<?php

    class RelatorioModel extends CI_Model{
        
        //-----------------------------------------------------------
        //Funções de Projetos ---------------------------------------
        function getProjetos(){
            return $this->db->get('projeto')->result();
        }
        
        function getProjeto($id){
            $this->db->where('id',$id);
            return $this->db->get('projeto')->row();
        }
        
        function cadastraProjeto($dados){
            $this->db->insert('projeto',$dados);
            $this->db->where('nome',$dados['nome']);
            $this->db->select('id');
            $projeto = $this->db->get('projeto')->row();
            
            return $projeto->id;
        }
        
        public function editarProjeto($dados){
            $this->db->where('id',$dados['id']);
            return $this->db->update('projeto',$dados);
        }
        
        public function excluiProjeto($id){
            $this->db->where('id', $id);
            return $this->db->delete('projeto');
        }
        
        // --------------------------------------------------------
        //---------------------------------------------------------
        //Funções de Equipe de Projeto ----------------------------
        
        public function getMembroPeloNome($nome){
            $this->db->where('nome', $nome);
            return $this->db->get('membro')->row();
        }
        
        function cadastraEquipe($ids, $projeto_id){
            foreach($ids as $id){
                $dados['projeto_id'] = $projeto_id;
                $dados['membro_id'] = $id;
                $dados['funcao'] = 'Desenvolvedor';
                $dados['situacao'] = 1;
                $dados['data_entrada'] = mdate('%d/%m/%Y');
                $this->db->insert('projeto_x_membro', $dados);
            }
            return 0;
        }
        
        public function adicionarMembro($dados){
            return $this->db->insert('projeto_x_membro',$dados);
        }
        
        public function retiraMembro($projeto, $membro){
            $this->db->where('membro_id', $membro);
            $this->db->where('projeto_id', $projeto);
            return $this->db->delete('projeto_x_membro');
        }
        
        public function excluiEquipe($id){
            $this->db->where('projeto_id', $id);
            return $this->db->delete('projeto_x_membro');
        }
        
        public function getMembrosProjeto($id){
            $this->db->where('projeto_id', $id);
            $this->db->join('projeto_x_membro','membro.id = projeto_x_membro.membro_id ');
            return $this->db->get('membro')->result();
        }
        
        //-----------------------------------------------------------
        //-----------------------------------------------------------
        //Funções de Funcionalidades no Projeto ---------------------
        
        public function cadastraFuncionalidadesNoProjeto($ids, $projeto_id){
            foreach($ids as $id){
                $dados['projeto_id'] = $projeto_id;
                $dados['funcionalidade_id'] = $id;
                $this->db->insert('projeto_x_funcionalidade', $dados);
            }
            return 0;
        }
        
        public function adicionarFuncionalidade($dados){
            return $this->db->insert('projeto_x_funcionalidade',$dados);
        }
        
        public function retiraFuncionalidade($projeto, $func){
            $this->db->where('funcionalidade_id', $func);
            $this->db->where('projeto_id', $projeto);
            return $this->db->delete('projeto_x_funcionalidade');
        }
        
        public function excluiFuncionalidadesProjeto($id){
            $this->db->where('projeto_id', $id);
            return $this->db->delete('projeto_x_funcionalidade');
        }
        
        public function getFuncionalidadesProjeto($id){
            $this->db->where('projeto_id', $id);
            $this->db->join('projeto_x_funcionalidade','funcionalidade.id = projeto_x_funcionalidade.funcionalidade_id');
            return $this->db->get('funcionalidade')->result();
        }
        
        //-----------------------------------------------------------
        //-----------------------------------------------------------
        //Funções de Tecnologias no Projeto ---------------------
        
        function cadastraTecnologiasNoProjeto($ids, $projeto_id){
            foreach($ids as $id){
                $dados['projeto_id'] = $projeto_id;
                $dados['tecnologia_id'] = $id;
                $this->db->insert('projeto_x_tecnologia', $dados);
            }
            return 0;
        }
        
        public function adicionarTecnologia($dados){
            return $this->db->insert('projeto_x_tecnologia',$dados);
        }
        
        public function retiraTecnologia($projeto, $tec){
            $this->db->where('tecnologia_id', $tec);
            $this->db->where('projeto_id', $projeto);
            return $this->db->delete('projeto_x_tecnologia');
        }
        
        public function excluiTecnologiasProjeto($id){
            $this->db->where('projeto_id', $id);
            return $this->db->delete('projeto_x_tecnologia');
        }
        
        function getTecnologiasProjeto($id){
            $this->db->where('projeto_id',$id);
            $this->db->join('projeto_x_tecnologia','tecnologia.id = projeto_x_tecnologia.tecnologia_id');
            return $this->db->get('tecnologia')->result();
        }
        
        //-----------------------------------------------------------
        //-----------------------------------------------------------
        
        public function getIdTipo($nome){
            $this->db->where('tipo_projeto', $nome);
            $this->db->select('id');
            return $this->db->get('tipo_projeto')->row();
        }
        
        //-----------------------------------------------------------
        // FUNÇÕES DE RELATÓRIO -------------------------------------
        //-----------------------------------------------------------
        //-----------------------------------------------------------
        
        public function cadastraAta($dados){
            return $this->db->insert('ata',$dados);
        }
        
        public function editarAta($dados){
            $this->db->where('id',$dados['id']);
            return $this->db->update('ata', $dados);
        }
        
        public function getIdAtaAntiga($diretoria, $cargo, $data){
            $this->db->where('diretoria_id',$diretoria);
            $this->db->where('cargo_id',$cargo);
            $this->db->where('data',$data);
            $this->db->select('id');
            return $this->db->get('ata')->row();
        }
        
        public function excluiAta($id){
            $this->db->where('id',$id);
            $ata = $this->db->get('ata')->row();
            $this->db->where('id',$id);
            $this->db->delete('ata');
            
            return $ata->nome;
        }
        
        public function getAta($id){
            $this->db->where('id', $id);
            return $this->db->get('ata')->row();
        }
        
        public function getAtas($diretoria, $cargo){
            $this->db->where('diretoria_id',$diretoria);
            $this->db->where('cargo_id',$cargo);
            return $this->db->get('ata')->result();
        }
        
        public function getAtasDiretoria($id){
            $this->db->where('diretoria_id',$id);
            return $this->db->get('ata')->result();
        }
        
        public function cadastraRelatorio($dados){
            return $this->db->insert('relatorio',$dados);
        }
        
        public function excluiRelatorio($id){
            $this->db->where('id',$id);
            return $this->db->delete('relatorio');
        }
        
        public function excluiRelatoriosProjeto($id){
            $this->db->where('projeto_id', $id);
            return $this->db->delete('relatorio');
        }
        
        public function getRelatorio($id){
            $this->db->where('id', $id);
            return $this->db->get('relatorio')->row();
        }
        
        public function getRelatoriosProjeto($id){
            $this->db->where('projeto_id', $id);
            $this->db->order_by('tipo');
            $this->db->order_by('data');
            return $this->db->get('relatorio')->result();
        }
        
        public function getRIP($id){
            $this->db->where('tipo',1);
            $this->db->where('projeto_id',$id);
            return $this->db->get('relatorio')->row();
        }
        
        public function getRA($id){
            $this->db->where('tipo',2);
            $this->db->where('projeto_id',$id);
            return $this->db->get('relatorio')->result();
        }
        
        public function getRFP($id){
            $this->db->where('tipo',3);
            $this->db->where('projeto_id',$id);
            return $this->db->get('relatorio')->row();
        }
        
        public function getIdRelatorioAntigo($tipo, $projeto_id){
            $this->db->where('tipo',$tipo);
            $this->db->where('projeto_id',$projeto_id);
            $this->db->select('id');
            return $this->db->get('relatorio')->row();
        }
    }
    
    
?>
